import wx from 'weixin-js-sdk'; // 引入SDK
// import axios from 'axios' // 用于请求后端接口
import api from "@/utils/api";
// import * as ww from '@wecom/jssdk';
import request from "@/utils/request.js";

// 在main.js或入口文件中
// export function loadWxSdk() {
// 	return new Promise((resolve, reject) => {
// 		// 如果已经加载，直接返回
// 		if (typeof wx !== 'undefined') {
// 			resolve(wx);
// 			return;
// 		}

// 		const script = document.createElement('script');
// 		// script.src = 'https://res.wx.qq.com/wwopen/js/jsapi/jweixin-1.0.0.js';
// 		script.src = 'https://open.work.weixin.qq.com/wwopen/js/jwxwork-1.0.0.js';

// 		script.onload = () => {
// 			if (typeof wx === 'undefined') {
// 				reject(new Error('企业微信SDK加载失败'));
// 				return;
// 			}
// 			resolve(wx);
// 		};
// 		script.onerror = reject;
// 		document.head.appendChild(script);
// 	});
// }
/**
 * 企业微信初始化
 * @param {Array} jsApiList 需要使用的JS接口列表
 */
export function initWxWork(jsApiList = []) {
	return new Promise((resolve, reject) => {

			// 1. 获取当前页面URL（用于签名，需去除#及后面部分）
			const url = window.location.href.split('#')[0]
			const currentUrl = getCurrentPageUrl();
			console.log(currentUrl, url);
			// 2. 调用后端接口获取签名参数
			request(api.getJsticket + `?url=${currentUrl}`, "GET")
				.then(res => {
					console.log(res);
					const {
						timestamp,
						nonceStr,
						signature
					} = res.data
					// 3. 初始化企业微信JS-SDK
					wx.config({
						beta: true, // 必须这么写，否则wx.invoke调用形式的jsapi会有问题
						appId: 'ww36f98ef0549bac0e',
						timestamp: timestamp, // 时间戳
						nonceStr: nonceStr, // 随机字符串
						signature: signature, // 签名
						jsApiList: [...jsApiList, 'openEnterpriseChat', 'openChat',
							'openExistedChatWithMsg'
						] // 必须包含打开聊天的接口
					})
		
					// 4. 处理初始化结果
					wx.ready(() => {
						console.log('企业微信初始化成功')

						resolve(wx)

						// 2、获取应用身份的签名，时间戳内容参数
						// request(api.agentJsticket + `?url=${currentUrl}`, "GET")
						// 	.then(res1 => {
						// 		console.log(res1, "应用信息，获取前面参数");
						// 		const {
						// 			timestamp,
						// 			nonceStr,
						// 			signature
						// 		} = res1.data;
						// 		wx.agentConfig({
						// 			corpid: 'ww36f98ef0549bac0e', // 企业微信的corpID
						// 			agentid: 1000002,
						// 			timestamp: timestamp, // 时间戳
						// 			nonceStr: nonceStr, // 随机字符串
						// 			signature: signature, // 签名
						// 			jsApiList: [...jsApiList, 'openEnterpriseChat',
						// 				'openChat',
						// 				'openExistedChatWithMsg'
						// 			], // 必须包含打开聊天的接口
						// 			success: function(res) {
						// 				console.log('应用授权成功', res);
						// 			},
						// 			fail: function(err) {
						// 				console.log('应用授权失败', err);
						// 			}
						// 		})
						// 	})
						// 	.catch(err => {
						// 		console.log(err);
						// 	})
						wx.checkJsApi({
							jsApiList: ['openExistedChatWithMsg'],
							success(res) {
								console.log(res, 'openExistedChatWithMsg');
							},
							fail(err) {
								console.log(err, 'openExistedChatWithMsg');
							}
						})
						wx.checkJsApi({
							jsApiList: ['openEnterpriseChat'],
							success(res) {
								console.log(res, 'openEnterpriseChat');
							},
							fail(err) {
								console.log(err, 'openEnterpriseChat');
							}
						})


					})

					wx.error(err => {
						console.error('企业微信初始化失败：', err)
						reject(err)
					})

				})
				.catch(err => {
					console.log(err);
				})
		})
		.catch(err => {
			console.error('获取签名失败：', err)
			reject(err)
		})
	// })
}

/**
 * 示例：调用企业微信接口（如获取当前用户信息）
 */
export function getWxUserInfo() {
	return new Promise((resolve, reject) => {
		wx.invoke('getCurUserInfo', {}, (res) => {
			if (res.err_msg === 'getCurUserInfo:ok') {
				resolve(res.userInfo) // 返回用户信息（包括userId、name等）
			} else {
				reject(new Error('获取用户信息失败：' + res.err_msg))
			}
		})
	})
}
/**
 * 打开企业微信聊天窗口
 * @param {Object} options 聊天参数
 * @param {String} options.userIds 企业内部用户ID（多个用逗号分隔，单聊传一个）
 * @param {String} options.externalUserIds 外部联系人ID（可选）
 * @param {String} options.groupName 群聊名称（多用户时生效）
 */
export function openChat(options) {
	return new Promise((resolve, reject) => {
		wx.invoke('openEnterpriseChat', options, (res) => {
			if (res.err_msg === 'openEnterpriseChat:ok') {
				console.log('打开聊天成功')
				resolve(res)
			} else {
				console.error('打开聊天失败：', res.err_msg)
				reject(new Error(`打开聊天失败：${res.err_msg}`))
			}
		})
	})
}


// 分享-联系人
export function shareMessage(options) {
	console.log(options, '----options分享')
	return new Promise((resolve, reject) => {
		wx.invoke('shareAppMessage', options, (res) => {
			if (res.err_msg === 'shareAppMessage:ok') {
				console.log('打开分享成功')
				resolve(res)
			} else {
				console.error('打开分享失败：', res.err_msg)
				reject(new Error(`打开分享失败：${res.err_msg}`))
			}
		})
	})
}

function getCurrentPageUrl() {
	// 在UniApp中获取当前页面URL
	const pages = getCurrentPages();
	const currentPage = pages[pages.length - 1];
	const route = currentPage.route;
	const options = currentPage.options;

	// 构建完整URL
	let url = `https://jinzhizixun.com.cn/${route}`;
	const params = [];

	for (let key in options) {
		params.push(`${key}=${encodeURIComponent(options[key])}`);
	}

	if (params.length > 0) {
		url += '?' + params.join('&');
	}

	return url.split('#')[0]; // 去除#后面的部分
}